import axiosInstance from '../api/axios';
import { getUserId } from '../utils/storage';
import { endpoints } from '../api/endpoints';
import { decryptAndParse } from '../utils/aesDecryptor';

export const fetchPhotos = async () => {
  try {
    const response = await axiosInstance.post(endpoints.getPhotoPlaylist);
    const encryptedData = response.data?.data;
    
    if (encryptedData && typeof encryptedData === 'string') {
      // 解密加密数据
      let decryptedData;
      try {
        decryptedData = await decryptAndParse(encryptedData);
        console.log('照片数据解密成功:', decryptedData);
      } catch (decryptError) {
        console.error('照片数据解密失败，尝试直接使用原始数据:', decryptError);
        // 如果解密失败，尝试直接使用原始数据（向后兼容）
        decryptedData = encryptedData;
      }

      // 处理解密后的数据
      let photoData;
      if (typeof decryptedData === 'string') {
        // 如果解密后仍然是字符串，尝试解析JSON
        try {
          photoData = JSON.parse(decryptedData);
        } catch (parseError) {
          console.error('解密数据JSON解析失败:', parseError);
          photoData = decryptedData;
        }
      } else {
        photoData = decryptedData;
      }

      return Array.isArray(photoData) ? photoData : [];
    } else if (Array.isArray(encryptedData)) {
      // 如果数据已经是数组（未加密的情况），直接使用
      return encryptedData;
    } else {
      console.error("Unexpected photo response structure:", encryptedData);
      return [];
    }
  } catch (error) {
    console.error('Error fetching photos:', error);
    return [];
  }
};

export const likePhoto = async (photo) => {
  const userId = getUserId();
  try {
    await axiosInstance.post(endpoints.joinFavoritelist, {
      user_id: userId,
      pic: photo,
    });
  } catch (error) {
    console.error('Error liking photo:', error);
  }
};
